﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
namespace Arthus
{
    class STV
    {
        MySqlConnection konekcija;
        MySqlCommand komanda = new MySqlCommand();
        MySqlDataReader datareader = null;
        MySqlDataAdapter adapter = null;
        DataTable dataTable = null;
        DataSet dataSet = null;
        ZAG zagObjekat = null;
        Posjed posjedObjekat = null;
        Artikal artikalObjekat = null;
        STV stvObjekat = null;
        Tarifa tarifaObjekat = null;

        public void StavkeDostavnicePopuniGridView(DataGridView dataGridViewStavkeDostavnice, int idPosjeda)
        {
            if (dostavnicaForma.IDzaglavlja.Equals(null) || dostavnicaForma.IDzaglavlja.Equals("") || dostavnicaForma.IDzaglavlja.Equals(" "))
            {
                //ukoliko je IDzaglavlja iz dostavnice prazan
            }
            else
            {
                try
                {
                    artikalObjekat = new Artikal();
                    posjedObjekat = new Posjed();
                    //ciscenje i spremanje datagridview-a
                    dataGridViewStavkeDostavnice.DataSource = null;
                    dataGridViewStavkeDostavnice.Rows.Clear();
                    dataGridViewStavkeDostavnice.Refresh();

                    //promenljiva za punjenje rednog broja dataGrid-a
                    int redniBroj = 0;
                    //konekcija sa bazom i punjenje datatable-a
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    komanda.Connection = konekcija;
                    komanda.CommandText = "SELECT STVID, STVMAT, STVMAG, STVMAT, STVMAT, STVIZL, STVI13, STVI18, STVI16 FROM STV WHERE STVZAG=" +
                        Convert.ToInt32(dostavnicaForma.IDzaglavlja) + " AND STVMAG=" + idPosjeda + ";";
                    dataTable = new DataTable();
                    adapter = new MySqlDataAdapter();
                    adapter.SelectCommand = komanda;
                    adapter.Fill(dataTable);

                    adapter.Dispose();
                    konekcija.Close();

                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        redniBroj++;
                        dataGridViewStavkeDostavnice.Rows.Add(redniBroj, dataTable.Rows[i][0], artikalObjekat.VratiKTBArtiklaNaOsnovuID((int)dataTable.Rows[i][1]),
                           posjedObjekat.VratiOznakuPosjedaNaOsnovuID((int)dataTable.Rows[i][2]), artikalObjekat.VratiOznakuArtiklaNaOsnovuID((int)dataTable.Rows[i][3]), 
                           dataTable.Rows[i][4], 
                            dataTable.Rows[i][5], dataTable.Rows[i][6],dataTable.Rows[i][7], VratiVNiliNeNaOsnovuIdZAGaINaOsnovuMagPosjedID((decimal)dataTable.Rows[i][8]));
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    dataTable.Clear();
                    adapter.Dispose();
                    konekcija.Close();
                }
            }
        }    //metoda koja puni dataGridViewStavkeDostavnice podacima iz baze
        public void StavkeNalogaProdajePopuniGridView(DataGridView dataGridViewStavkeNalogaProdaje, String idZag)
        {
            if (idZag.Length<=0)
            {
                //ukoliko je IDzaglavlja iz dostavnice prazan
            }
            else
            {
                try
                {
                    artikalObjekat = new Artikal();
                    posjedObjekat = new Posjed();
                    //ciscenje i spremanje datagridview-a
                    dataGridViewStavkeNalogaProdaje.DataSource = null;
                    dataGridViewStavkeNalogaProdaje.Rows.Clear();
                    dataGridViewStavkeNalogaProdaje.Refresh();

                    //promenljiva za punjenje rednog broja dataGrid-a
                    int redniBroj = 0;
                    //konekcija sa bazom i punjenje datatable-a
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    komanda.Connection = konekcija;
                    komanda.CommandText = "SELECT STVID, STVMAT, STVMAG, STVMAT, STVMAT, STVIZL, STVCEN, STVPOT, STVNDU FROM STV WHERE STVZAG=" +
                        Convert.ToInt32(idZag) + ";";
                    dataTable = new DataTable();
                    adapter = new MySqlDataAdapter();
                    adapter.SelectCommand = komanda;
                    adapter.Fill(dataTable);

                    adapter.Dispose();
                    konekcija.Close();

                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        redniBroj++;
                        dataGridViewStavkeNalogaProdaje.Rows.Add(redniBroj, dataTable.Rows[i][0], artikalObjekat.VratiKTBArtiklaNaOsnovuID((int)dataTable.Rows[i][1]),
                           posjedObjekat.VratiOznakuPosjedaNaOsnovuID((int)dataTable.Rows[i][2]), artikalObjekat.VratiOznakuArtiklaNaOsnovuID((int)dataTable.Rows[i][3]),
                           dataTable.Rows[i][4],
                            dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7], (decimal)dataTable.Rows[i][8]);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    dataTable.Clear();
                    adapter.Dispose();
                    konekcija.Close();
                }
            }
        }
        public void StavkeKalkulacijePopuniGridView(DataGridView dataGridViewStavkeKalkulacije, int idPosjeda)
        {
            if (kalkulacijaForma.IDzaglavlja.Equals(null) || kalkulacijaForma.IDzaglavlja.Equals("") || kalkulacijaForma.IDzaglavlja.Equals(" "))
            {
                //ukoliko je IDzaglavlja iz dostavnice prazan
            }
            else
            {
                try
                {
                    artikalObjekat = new Artikal();
                    posjedObjekat = new Posjed();
                    //ciscenje i spremanje datagridview-a
                    dataGridViewStavkeKalkulacije.DataSource = null;
                    dataGridViewStavkeKalkulacije.Rows.Clear();
                    dataGridViewStavkeKalkulacije.Refresh();

                    //promenljiva za punjenje rednog broja dataGrid-a
                    int redniBroj = 0;
                    //konekcija sa bazom i punjenje datatable-a
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    komanda.Connection = konekcija;
                    komanda.CommandText = "SELECT STVID, STVMAT, STVMAG, STVMAT, STVMAT, STVULA, STVCEN, STVDUG, STVNDU, STVI17, STVI15 FROM STV WHERE STVZAG=" +
                        Convert.ToInt32(kalkulacijaForma.IDzaglavlja) + " AND STVMAG=" + idPosjeda + ";";
                    dataTable = new DataTable();
                    adapter = new MySqlDataAdapter();
                    adapter.SelectCommand = komanda;
                    adapter.Fill(dataTable);

                    adapter.Dispose();
                    konekcija.Close();

                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        redniBroj++;
                        dataGridViewStavkeKalkulacije.Rows.Add(redniBroj, dataTable.Rows[i][0], artikalObjekat.VratiKTBArtiklaNaOsnovuID((int)dataTable.Rows[i][1]),
                           posjedObjekat.VratiOznakuPosjedaNaOsnovuID((int)dataTable.Rows[i][2]), artikalObjekat.VratiOznakuArtiklaNaOsnovuID((int)dataTable.Rows[i][3]),
                           dataTable.Rows[i][4],
                            dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7], dataTable.Rows[i][8], dataTable.Rows[i][9], dataTable.Rows[i][10]);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    dataTable.Clear();
                    adapter.Dispose();
                    konekcija.Close();
                }
            }
        }
        public void StavkeIzlaznogRacunaPopuniGridView(DataGridView dataGridViewStavkeIzlaznogRacuna, int idPosjeda)
        {
            if (IzlazniRacun.izlazniRacunForma.IDzaglavlja.Equals(null) || IzlazniRacun.izlazniRacunForma.IDzaglavlja.Equals("") || IzlazniRacun.izlazniRacunForma.IDzaglavlja.Equals(" "))
            {
                //ukoliko je IDzaglavlja iz dostavnice prazan
            }
            else
            {
                try
                {
                    artikalObjekat = new Artikal();
                    posjedObjekat = new Posjed();
                    //ciscenje i spremanje datagridview-a
                    dataGridViewStavkeIzlaznogRacuna.DataSource = null;
                    dataGridViewStavkeIzlaznogRacuna.Rows.Clear();
                    dataGridViewStavkeIzlaznogRacuna.Refresh();

                    //promenljiva za punjenje rednog broja dataGrid-a
                    int redniBroj = 0;
                    //konekcija sa bazom i punjenje datatable-a
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    komanda.Connection = konekcija;
                    komanda.CommandText = "SELECT STVID, STVMAT, STVMAG, STVMAT, STVMAT, STVIZL, STVCEN, STVPOT, STVNPO, STVI22 FROM STV WHERE STVZAG=" +
                        Convert.ToInt32(IzlazniRacun.izlazniRacunForma.IDzaglavlja) + " AND STVMAG=" + idPosjeda + ";";
                    dataTable = new DataTable();
                    adapter = new MySqlDataAdapter();
                    adapter.SelectCommand = komanda;
                    adapter.Fill(dataTable);

                    adapter.Dispose();
                    konekcija.Close();

                    for (int i = 0; i < dataTable.Rows.Count; i++)
                    {
                        redniBroj++;
                        dataGridViewStavkeIzlaznogRacuna.Rows.Add(redniBroj, dataTable.Rows[i][0], artikalObjekat.VratiKTBArtiklaNaOsnovuID((int)dataTable.Rows[i][1]),
                           posjedObjekat.VratiOznakuPosjedaNaOsnovuID((int)dataTable.Rows[i][2]), artikalObjekat.VratiOznakuArtiklaNaOsnovuID((int)dataTable.Rows[i][3]),
                           dataTable.Rows[i][4],
                            dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7], string.Format("{0:0.00}",dataTable.Rows[i][8]), dataTable.Rows[i][9]);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    dataTable.Clear();
                    adapter.Dispose();
                    konekcija.Close();
                }
            }
        } 

        public String VratiVNiliNeNaOsnovuIdZAGaINaOsnovuMagPosjedID(decimal stvi16)
        {
            String rezultat = "";
            if (stvi16 != 0.00m)
            {
                rezultat = "VN";
            }
            else {
                rezultat = "";
            }
            return rezultat;
        }//vraca VN ako ima nivelacija a ako nema ne vraća ništa

        public bool PostojiUBaziIliNeNaOsnovuID(int idStavke) {
            bool rezultat = true;
            try
            {
                String provera = "";
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT STVID FROM STV WHERE STVID="+idStavke+";";
                datareader = komanda.ExecuteReader();
                while (datareader.Read())
                {
                    provera = datareader["STVID"].ToString();
                }
                if (provera.Length > 0)
                {
                    rezultat = true;
                }
                else {
                    rezultat = false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        }

        public void PopuniKontroleUStavkaDostavniceFormi(ComboBox izVeleprodaje, TextBox kataloskiBrojArtikla, TextBox PDVstopaArtikla, 
            TextBox VPCenaArtikla, TextBox kolicinaArtikla, TextBox artikalNaziv, TextBox ispodNazivaARtikla, TextBox MPCenaArtikla, TextBox ispoMPCeneArtiklatry, 
            ComboBox uMaloprodaju, TextBox kolicina, TextBox VPCena, TextBox VPVrednost, TextBox MPMarza, TextBox ukalkulisanaCena, 
            TextBox MPCena, TextBox MPVrednost, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije) {
                STV stvObjekat2 = new STV();
                if (stavkaDostavnice.IDstavke.Length > 0)
                {
                    if (stavkaDostavnice.IDartikla.Length > 0)
                    {
                        //ukoliko IDstavke postoji
                        posjedObjekat = new Posjed();
                        stvObjekat = new STV();
                        artikalObjekat = new Artikal();
                        tarifaObjekat = new Tarifa();
                        try
                        {
                            konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                            konekcija.Open();
                            komanda.Connection = konekcija;
                            komanda.CommandType = CommandType.Text;
                            komanda.CommandText = "SELECT STVMAG, STVMAT, STVID, STVIZL, STVI13, STVI14, STVI17, STVI11, STVI18, STVI19, STVULA, STVNDU FROM STV WHERE STVID="
                                + Convert.ToInt32(stavkaDostavnice.IDstavke) + "";
                            datareader = komanda.ExecuteReader();
                            datareader.Read();

                            kataloskiBrojArtikla.Text = artikalObjekat.VratiKTBArtiklaNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()));
                            PDVstopaArtikla.Text = Razno.IzbrisiPojedineKaraktereIzStringa2(tarifaObjekat.VratiOznakuTarifeNaOsnovuID(
                            artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()))));
                            VPCenaArtikla.Text = "" + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString())) + " / "
                                + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtiklaUEURIMA(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()));
                            kolicinaArtikla.Text = "" + stvObjekat.VratiKolicinuArtikla(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()), 1, statickePromenljive.godina);
                            artikalNaziv.Text = artikalObjekat.VratiOznakuArtiklaNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()));
                            MPCenaArtikla.Text = "" + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString())) + " / "
                                + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtiklaUEURIMA(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()));

                            if (Convert.ToInt32(stavkaDostavnice.IDstavke) < stvObjekat.VratiPovecanID())
                            {
                                izVeleprodaje.SelectedIndex = izVeleprodaje.Items.IndexOf(posjedObjekat.VratiOznakuPosjedaNaOsnovuID(
                                    Convert.ToInt32(datareader["STVMAG"].ToString())));
                                uMaloprodaju.SelectedIndex = uMaloprodaju.Items.IndexOf(posjedObjekat.VratiOznakuPosjedaNaOsnovuID(
                                    stvObjekat.VratiIDPosjedaSTVMAGNaOsnovuIDSTVa(Convert.ToInt32(datareader["STVID"].ToString()) + 1)));

                                kolicina.Text = datareader["STVIZL"].ToString();
                                VPCena.Text = datareader["STVI13"].ToString();
                                VPVrednost.Text = datareader["STVI14"].ToString();
                                MPMarza.Text = datareader["STVI17"].ToString();
                                ukalkulisanaCena.Text = datareader["STVI11"].ToString();
                                MPCena.Text = datareader["STVI18"].ToString();
                                MPVrednost.Text = datareader["STVI19"].ToString();
                                kolicinaZaNivelaciju.Text = datareader["STVULA"].ToString();
                                vrednostNivelacije.Text = datareader["STVNDU"].ToString();
                            }
                            else
                            {
                                VPCena.Text = "" + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()));
                                MPCena.Text = "" + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(stavkaDostavnice.IDartikla.ToString()));
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                        }
                        finally
                        {
                            datareader.Close();
                            konekcija.Close();
                        }
                    }
                }
                else
                {
                    
                }
        }

        public void PopuniKontroleUStavkaKalkulacijeForma(TextBox kataloskiBrojArtikla, TextBox PDVstopaArtikla,
            TextBox VPCenaArtikla, TextBox kolicinaArtikla, TextBox artikalNaziv, TextBox ispodNazivaARtikla, TextBox MPCenaArtikla, TextBox ispoMPCeneArtiklatry,
            ComboBox prodajnaJedinica, TextBox kolicina, TextBox fakturnaCena, TextBox rabatProcenat, TextBox iznorRabata, TextBox zavisniTroskovi,
            TextBox nabavnaVrednost, TextBox nabavnaCena, TextBox prodajnaCena, TextBox prodajnaVrednost, TextBox ruc, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije)
        {
            STV stvObjekat2 = new STV();
            if (Kalkulacija.stavkaKalkulacije.IDstavke != 0)
            {
                if (Kalkulacija.stavkaKalkulacije.IDartikla.Length > 0)
                {
                    //ukoliko IDstavke postoji
                    posjedObjekat = new Posjed();
                    stvObjekat = new STV();
                    artikalObjekat = new Artikal();
                    tarifaObjekat = new Tarifa();
                    try
                    {
                        konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                        konekcija.Open();
                        komanda.Connection = konekcija;
                        komanda.CommandType = CommandType.Text;
                        komanda.CommandText = "SELECT STVMAG, STVMAT, STVID, STVULA, STVI11, STVI12, STVI13, STVI14, STVI15, STVI16, STVCEN, STVDUG, STVI17, STVNKO, STVNDU FROM STV WHERE STVID="
                            + Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDstavke) + "";
                        datareader = komanda.ExecuteReader();
                        datareader.Read();

                        kataloskiBrojArtikla.Text = artikalObjekat.VratiKTBArtiklaNaOsnovuID(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()));
                        PDVstopaArtikla.Text = Razno.IzbrisiPojedineKaraktereIzStringa2(tarifaObjekat.VratiOznakuTarifeNaOsnovuID(
                        artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()))));
                        VPCenaArtikla.Text = "" + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()));
                        kolicinaArtikla.Text = "" + stvObjekat.VratiKolicinuArtikla(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()), 1, statickePromenljive.godina);
                        artikalNaziv.Text = artikalObjekat.VratiOznakuArtiklaNaOsnovuID(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()));
                        MPCenaArtikla.Text = "" + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString())) + " / "
                            + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtiklaUEURIMA(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()));

                        if (Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDstavke) < stvObjekat.VratiPovecanID())
                        {
                            prodajnaJedinica.SelectedIndex = prodajnaJedinica.Items.IndexOf(posjedObjekat.VratiOznakuPosjedaNaOsnovuID(
                                Convert.ToInt32(datareader["STVMAG"].ToString())));

                            kolicina.Text = datareader["STVULA"].ToString();
                            fakturnaCena.Text = datareader["STVI11"].ToString();
                            rabatProcenat.Text = datareader["STVI12"].ToString();
                            iznorRabata.Text = datareader["STVI13"].ToString();
                            zavisniTroskovi.Text = datareader["STVI14"].ToString();
                            nabavnaVrednost.Text = datareader["STVI15"].ToString();
                            nabavnaCena.Text = datareader["STVI16"].ToString();
                            prodajnaCena.Text = datareader["STVCEN"].ToString();
                            prodajnaVrednost.Text = datareader["STVDUG"].ToString();
                            ruc.Text = datareader["STVI17"].ToString();
                            kolicinaZaNivelaciju.Text = datareader["STVNKO"].ToString();
                            vrednostNivelacije.Text = datareader["STVNDU"].ToString();
                        }
                        else
                        {
                            prodajnaCena.Text = "" + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()));
                            if (Convert.ToDecimal(kolicinaArtikla.Text) > 0)
                            {
                                kolicinaZaNivelaciju.Text = kolicinaArtikla.Text;
                            }
                            else {
                                kolicinaZaNivelaciju.Text = "0.000";
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                    }
                    finally
                    {
                        datareader.Close();
                        konekcija.Close();
                    }
                }
            }
            else
            {

            }
        }

        public void PopuniKontroleUStavkaIzlaznogRacunaForma(TextBox kataloskiBrojArtikla, TextBox PDVstopaArtikla,
            TextBox VPCenaArtikla, TextBox kolicinaArtikla, TextBox artikalNaziv, TextBox ispodNazivaARtikla, TextBox MPCenaArtikla, TextBox ispoMPCeneArtiklatry,
            ComboBox prodajnaJedinica, TextBox kolicina, TextBox cena, TextBox vrednost, TextBox rabatProcenat, TextBox iznosRabata, TextBox vrednostBezRabata, 
            TextBox iznosPDV, TextBox vrednostSaPDV, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije)
        {
            STV stvObjekat2 = new STV();
            if (IzlazniRacun.stavkaIzlaznogRacuna.IDstavke != 0)
            {
                if (IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.Length > 0)
                {
                    //ukoliko IDstavke postoji
                    posjedObjekat = new Posjed();
                    stvObjekat = new STV();
                    artikalObjekat = new Artikal();
                    tarifaObjekat = new Tarifa();
                    try
                    {
                        konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                        konekcija.Open();
                        komanda.Connection = konekcija;
                        komanda.CommandType = CommandType.Text;
                        komanda.CommandText = "SELECT STVMAG, STVMAT, STVID, STVIZL, STVI21, STVI22, STVI23, STVI24, STVI25 , STVCEN, STVPOT, STVNKO, STVNPO FROM STV WHERE STVID="
                            + Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDstavke) + "";
                        datareader = komanda.ExecuteReader();
                        datareader.Read();

                        kataloskiBrojArtikla.Text = artikalObjekat.VratiKTBArtiklaNaOsnovuID(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.ToString()));
                        PDVstopaArtikla.Text = Razno.IzbrisiPojedineKaraktereIzStringa2(tarifaObjekat.VratiOznakuTarifeNaOsnovuID(
                        artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.ToString()))));
                        VPCenaArtikla.Text = "" + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.ToString()));
                        kolicinaArtikla.Text = "" + stvObjekat.VratiKolicinuArtikla(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.ToString()), 1, statickePromenljive.godina);
                        artikalNaziv.Text = artikalObjekat.VratiOznakuArtiklaNaOsnovuID(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.ToString()));
                        MPCenaArtikla.Text = "" + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.ToString())) + " / "
                            + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtiklaUEURIMA(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla.ToString()));

                        if (Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDstavke) < stvObjekat.VratiPovecanID())
                        {
                            prodajnaJedinica.SelectedIndex = prodajnaJedinica.Items.IndexOf(posjedObjekat.VratiOznakuPosjedaNaOsnovuID(
                                Convert.ToInt32(datareader["STVMAG"].ToString())));

                            kolicina.Text = datareader["STVIZL"].ToString();
                            cena.Text = datareader["STVCEN"].ToString();
                            vrednost.Text = datareader["STVPOT"].ToString();
                            rabatProcenat.Text = datareader["STVI21"].ToString();
                            iznosRabata.Text = datareader["STVI22"].ToString();
                            vrednostBezRabata.Text = datareader["STVI23"].ToString();
                            iznosPDV.Text = datareader["STVI24"].ToString();
                            vrednostSaPDV.Text = datareader["STVI25"].ToString();
                            kolicinaZaNivelaciju.Text = datareader["STVNKO"].ToString();
                            vrednostNivelacije.Text = datareader["STVNPO"].ToString();
                        }
                        else
                        {
                            //prodajnaCena.Text = "" + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla.ToString()));
                            if (Convert.ToDecimal(kolicina.Text)<=Convert.ToDecimal(kolicinaArtikla.Text))
                            {
                                kolicinaZaNivelaciju.Text = kolicina.Text;
                            }
                            else
                            {
                                kolicinaZaNivelaciju.Text = "0.000";
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                    }
                    finally
                    {
                        datareader.Close();
                        konekcija.Close();
                    }
                }
            }
            else
            {

            }
        }

        public decimal VratiKolicinuArtikla(int idArtikla, int magacinID, string godina)
        {
            decimal rezultat = 0.000m;
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVULA)-SUM(STVIZL) FROM STV WHERE STVMAT=" + idArtikla + " AND STVMAG=" + magacinID + " AND DATE_FORMAT(STVIDT, '%Y')='" + godina + "'";
                datareader = komanda.ExecuteReader();
                while (datareader.Read())
                {
                    if (datareader.IsDBNull(0) || datareader[0].ToString().Equals("NULL"))
                    {
                        rezultat = 0.000m;
                    }
                    else
                    {
                        rezultat = (decimal)datareader.GetValue(0);
                    }
                }
                
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        } //vraca VP cenu artikla na osnovu ID

        public decimal VratiKolicinuArtiklaPlusPromenaZaIzmenu(int idArtikla, int magacinID, int idStavke)
        {
            decimal rezultat = 0.000m;
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVULA)-SUM(STVIZL)+(SELECT STVIZL FROM STV WHERE STVID="+idStavke+") FROM STV WHERE STVMAT="
                    +idArtikla+" AND STVMAG="+magacinID+"";
                datareader = komanda.ExecuteReader();
                while (datareader.Read())
                {
                    if (datareader.IsDBNull(0) || datareader[0].ToString().Equals("NULL"))
                    {
                        rezultat = 0.000m;
                    }
                    else
                    {
                        rezultat = (decimal)datareader.GetValue(0);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        } //vraca VP cenu artikla na osnovu ID

        public int VratiIDPosjedaSTVMAGNaOsnovuIDSTVa(int stvmagID)
        {
            int rezultat = 0;
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT STVMAG FROM STV WHERE STVID="+stvmagID+"";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                rezultat = (int)datareader.GetValue(0);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        } //vraca id posjeda na osnovu id stavke

        public int VratiPovecanID()
        {
            int rezultat = 0;

            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT MAX(STVID) FROM STV;";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                rezultat = Convert.ToInt32(datareader.GetValue(0));
                rezultat++;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                datareader.Close();
                konekcija.Close();
            }
            return rezultat;
        }    //metoda koja vraca povecan id za 1

        public void UnosNoveStavkeKrozDostavnicu(ComboBox izVeleprodaje, ComboBox uMaloprodaju, TextBox kolicina, TextBox vpCena, TextBox vpVrednost, 
            TextBox mpMarza, TextBox ukalkulisanaCena, TextBox mpCena, TextBox mpVrednost, TextBox kolicinaZaNivelaciju,  TextBox vrednostNivelacije, 
            TextBox StopaTarifa, TextBox kolicinaArtikla) {
                //kolicinaZaNivelaciju-STVIZL, vrednostNivelacije=STVNDU
            tarifaObjekat=new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();
            stvObjekat = new STV();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0)
                    {
                        decimal mpBezPDV = Convert.ToDecimal(mpCena.Text) * 100 / (100 + Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)));
                        decimal PDV = Convert.ToDecimal(mpCena.Text) - mpBezPDV;
                        decimal razlika = mpBezPDV - Convert.ToDecimal(vpCena.Text);
                        int povecanIdPlus1 = stvObjekat.VratiPovecanID() + 1;
                        int smanjenIdMinus1 = stvObjekat.VratiPovecanID() - 1;
                        decimal vrednostVpRuc = razlika * Convert.ToDecimal(kolicina.Text);
                        decimal pdvVrednost=PDV*Convert.ToDecimal(kolicina.Text);
                try
                {
                        konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                        konekcija.Open();
                        komanda.Connection = konekcija;
                        komanda.CommandType = CommandType.Text;

                        if (razlika < 0)
                        {//if za STVI20 i STVI16
                            //PRVI UNOS
                            komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVIZL, STVCEN, STVPOT, STVNKO, STVNDU, STVNPO, " 
                                + " STVTAR, STVSTO, STVWIB, STVIZU, STVVAL,STVI08, STVI09, STVI10, STVI11, STVI12, STVI13, STVI14, STVI16, STVI17, STVI18, STVI19, STVI21,"
                                +" STVIIM, STVIDT) "
                                + " VALUES (" + stvObjekat.VratiPovecanID() + ", " + Convert.ToInt32(dostavnicaForma.IDzaglavlja) + ", " 
                                + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", "
                                + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(izVeleprodaje.SelectedItem.ToString()) + ", 0, "
                                + Convert.ToDecimal(kolicina.Text) + ", " + mpBezPDV + ", " + mpBezPDV*Convert.ToDecimal(kolicina.Text) + ", "
                                + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(vrednostNivelacije.Text) + ", " + razlika + ", "
                                + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", "
                                + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)))) + ", 0, "
                                + povecanIdPlus1 + ", 0," + pdvVrednost + ", " + vrednostVpRuc + ", 0.00, " + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", "
                                + Convert.ToDecimal(vpCena.Text) + ", " + Convert.ToDecimal(vpVrednost.Text) + ", " + razlika + ", " + Convert.ToDecimal(mpMarza.Text) + ", "
                                + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", " + PDV + ", 'Agrovin', NOW())");
                        }
                        else
                        {
                            komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVIZL, STVCEN, STVPOT, STVNKO, STVNDU, STVNPO, "
                                + " STVTAR, STVSTO, STVWIB, STVIZU, STVVAL, STVI08,  STVI09, STVI10, STVI11, STVI12, STVI13, STVI14, STVI20, STVI17, STVI18, STVI19, STVI21, STVIIM, STVIDT) "
                                + " VALUES (" + stvObjekat.VratiPovecanID() + ", " + Convert.ToInt32(dostavnicaForma.IDzaglavlja) + ", "
                                + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", "
                                + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(izVeleprodaje.SelectedItem.ToString()) + ", 0, "
                                + Convert.ToDecimal(kolicina.Text) + ", " + +mpBezPDV + ", " + mpBezPDV * Convert.ToDecimal(kolicina.Text) +", "
                                + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(vrednostNivelacije.Text) + ", " + razlika + ", "
                                + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", "
                                + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)))) + ", 0, "
                                + povecanIdPlus1 + ", 0," + pdvVrednost + ", " + vrednostVpRuc + ", 0.00, " + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", "
                                + Convert.ToDecimal(vpCena.Text) + ", " + Convert.ToDecimal(vpVrednost.Text) + ", " + razlika + ", " + Convert.ToDecimal(mpMarza.Text) + ", "
                                + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", " + PDV + ", 'Agrovin', NOW())");
                        }
                     int response = komanda.ExecuteNonQuery();
                    }
                catch (FormatException ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
                    }
       else
          {
              MessageBox.Show("Morate uneti količinu");
          }
        } //metoda koja omogucava izmenu stavke kroz dostavnicu
        public void UnosNoveStavkeKrozDostavnicu2(ComboBox izVeleprodaje, ComboBox uMaloprodaju, TextBox kolicina, TextBox vpCena, TextBox vpVrednost,
            TextBox mpMarza, TextBox ukalkulisanaCena, TextBox mpCena, TextBox mpVrednost, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije, 
            TextBox StopaTarifa, TextBox kolicinaArtikla) {
                tarifaObjekat = new Tarifa();
                artikalObjekat = new Artikal();
                posjedObjekat = new Posjed();
                stvObjekat = new STV();
                if (Convert.ToDecimal(kolicina.Text) > 0)
                    {
                try
                {
                        decimal mpBezPDV = Convert.ToDecimal(mpCena.Text) * 100 / (100 + Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)));
                        decimal PDV = Convert.ToDecimal(mpCena.Text) - mpBezPDV;
                        decimal razlika = mpBezPDV - Convert.ToDecimal(vpCena.Text);
                        int povecanIdPlus1 = stvObjekat.VratiPovecanID() + 1;
                        int smanjenIdMinus1 = stvObjekat.VratiPovecanID() - 1;
                        decimal vrednostVpRuc = razlika * Convert.ToDecimal(kolicina.Text);
                        decimal pdvVrednost = PDV * Convert.ToDecimal(kolicina.Text);
                        //konekcija sa bazom
                        konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                        konekcija.Open();
                        komanda.Connection = konekcija;
                        komanda.CommandType = CommandType.Text;
                        if (razlika < 0)
                        {//if za STVI20 i STVI16
                            //PRVI UNOS
                            komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVULA, STVCEN, STVDUG, STVTAR, "
                                + " STVSTO, STVWIB, STVIZU, STVVAL,STVI08, STVI09, STVI10, STVI11, STVI12, STVI16, STVI17, STVI18, STVI19, STVI21, STVIIM, STVIDT) VALUES "
                                + "(" + stvObjekat.VratiPovecanID() + ", " + Convert.ToInt32(dostavnicaForma.IDzaglavlja) + ", "
                                + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", " + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(uMaloprodaju.SelectedItem.ToString()) + ", 0, "
                                + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", "
                                + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", "
                                + Convert.ToDecimal(string.Format("{0:0.00}", Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text))) + ", 0, "
                                + smanjenIdMinus1 + ", 0, " + pdvVrednost + ", " + vrednostVpRuc + ",2.00, " + Convert.ToDecimal(vpCena.Text) + ", " + Convert.ToDecimal(vpVrednost.Text) + ", " + razlika + ", "
                                + Convert.ToDecimal(mpMarza.Text) + "," + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", "
                                + PDV + ", 'Agrovin', NOW())");
                        }
                        else
                        {
                            komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVULA, STVCEN, STVDUG, STVTAR, "
                                + " STVSTO, STVWIB, STVIZU, STVVAL, STVI08, STVI09, STVI10, STVI11, STVI12, STVI20, STVI17, STVI18, STVI19, STVI21, STVIIM, STVIDT) VALUES "
                                + "(" + stvObjekat.VratiPovecanID() + ", " + Convert.ToInt32(dostavnicaForma.IDzaglavlja) + ", "
                                + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", " + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(uMaloprodaju.SelectedItem.ToString()) + ", 0, "
                                + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", "
                                + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", "
                                + Convert.ToDecimal(string.Format("{0:0.00}", Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text))) + ", 0, "
                                + smanjenIdMinus1 + ", 0, " + pdvVrednost + ", " + vrednostVpRuc + ",2.00, " + Convert.ToDecimal(vpCena.Text) + ", " + Convert.ToDecimal(vpVrednost.Text) + ", " + razlika + ", "
                                + Convert.ToDecimal(mpMarza.Text) + "," + Convert.ToDecimal(mpCena.Text) + ", " + Convert.ToDecimal(mpVrednost.Text) + ", "
                                + PDV + ", 'Agrovin', NOW())");
                        }
                        //DRUGI UNOS
                        int response = komanda.ExecuteNonQuery();
                        MessageBox.Show("Uspešno ste uneli novu stavku!");
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
                    }
        }//metoda koja omogucava izmenu stavke drugi deo kroz dostavnicu

        public void IzmenaStavkeKrozDostavnicu(ComboBox izVeleprodaje, ComboBox uMaloprodaju, TextBox kolicina, TextBox vpCena, TextBox vpVrednost,
            TextBox mpMarza, TextBox ukalkulisanaCena, TextBox mpCena, TextBox mpVrednost, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije,
            TextBox StopaTarifa, TextBox kolicinaArtikla, int idArtikla, int idStavke)
        {
            //kolicinaZaNivelaciju-STVIZL, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();
            stvObjekat = new STV();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0 )
            {
                decimal mpBezPDV = Convert.ToDecimal(mpCena.Text) * 100 / (100 + Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)));
                decimal PDV = Convert.ToDecimal(mpCena.Text) - mpBezPDV;
                decimal razlika = mpBezPDV - Convert.ToDecimal(vpCena.Text);
                int povecanIdPlus1 = stvObjekat.VratiPovecanID() + 1;
                int smanjenIdMinus1 = stvObjekat.VratiPovecanID() - 1;
                decimal vrednostVpRuc = razlika * Convert.ToDecimal(kolicina.Text);
                decimal pdvVrednost = PDV * Convert.ToDecimal(kolicina.Text);
                try
                {
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    if (razlika < 0)
                    {//if za STVI20 i STVI16
                        //PRVI UNOS
                        komanda.CommandText = @"UPDATE STV SET STVMAT=" + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", STVMAG="
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(izVeleprodaje.SelectedItem.ToString()) + ", STVIZL=" + Convert.ToDecimal(kolicina.Text) + ", STVCEN="
                            + mpBezPDV + ", STVPOT=" + mpBezPDV*Convert.ToDecimal(kolicina.Text) + ", STVNKO=" + Convert.ToDecimal(kolicina.Text) + ", STVNDU="
                            + Convert.ToDecimal(vrednostNivelacije.Text) + ", STVNPO=" + razlika + ", STVTAR="
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", STVSTO="
                            + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)))) + ",STVI08=" 
                            + pdvVrednost + ", STVI09=" + vrednostVpRuc + ",STVI11="+ Convert.ToDecimal(mpCena.Text) + ", STVI12=" 
                            + Convert.ToDecimal(mpVrednost.Text) + ", STVI13=" + Convert.ToDecimal(vpCena.Text) + ", STVI14="
                            + Convert.ToDecimal(vpVrednost.Text) + ", STVI16=" + razlika + ", STVI17=" + Convert.ToDecimal(mpMarza.Text) + ", STVI18="
                            + Convert.ToDecimal(mpCena.Text) + ", STVI19=" + Convert.ToDecimal(mpVrednost.Text) + ", STVI21="+ PDV + ", STVIDT=NOW(), STVI20=0.00 WHERE STVID=" 
                            + idStavke + " ";
                    }
                    else
                    {
                        komanda.CommandText = @"UPDATE STV SET STVMAT=" + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", STVMAG="
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(izVeleprodaje.SelectedItem.ToString()) + ", STVIZL=" + Convert.ToDecimal(kolicina.Text) + ", STVCEN="
                            + mpBezPDV + ", STVPOT=" + mpBezPDV * Convert.ToDecimal(kolicina.Text) + ", STVNKO=" + Convert.ToDecimal(kolicina.Text) + ", STVNDU="
                            + Convert.ToDecimal(vrednostNivelacije.Text) + ", STVNPO=" + razlika + ", STVTAR="
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", STVSTO="
                            + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)))) + ",STVI08=" 
                            + pdvVrednost + ", STVI09=" + vrednostVpRuc + ", STVI11="+ Convert.ToDecimal(mpCena.Text) + ", STVI12=" 
                            + Convert.ToDecimal(mpVrednost.Text) + ", STVI13=" + Convert.ToDecimal(vpCena.Text) + ", STVI14="
                            + Convert.ToDecimal(vpVrednost.Text) + ", STVI16=0.00, STVI17=" + Convert.ToDecimal(mpMarza.Text) + ", STVI18="
                            + Convert.ToDecimal(mpCena.Text) + ", STVI19=" + Convert.ToDecimal(mpVrednost.Text) + ", STVI21="+ PDV + ", STVIDT=NOW(), STVI20=" 
                            + razlika + " WHERE STVID=" + idStavke + " ";
                    }
                    komanda.ExecuteNonQuery();
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        }
        public void IzmenaStavkeKrozDostavnicu2(ComboBox izVeleprodaje, ComboBox uMaloprodaju, TextBox kolicina, TextBox vpCena, TextBox vpVrednost,
            TextBox mpMarza, TextBox ukalkulisanaCena, TextBox mpCena, TextBox mpVrednost, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije,
            TextBox StopaTarifa, TextBox kolicinaArtikla, int idArtikla, int idStavke)
        {
            //kolicinaZaNivelaciju-STVIZL, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();
            stvObjekat = new STV();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0 )
            {
                decimal mpBezPDV = Convert.ToDecimal(mpCena.Text) * 100 / (100 + Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)));
                decimal PDV = Convert.ToDecimal(mpCena.Text) - mpBezPDV;
                decimal razlika = mpBezPDV - Convert.ToDecimal(vpCena.Text);
                int povecanIdPlus1 = stvObjekat.VratiPovecanID() + 1;
                int smanjenIdMinus1 = stvObjekat.VratiPovecanID() - 1;
                decimal vrednostVpRuc = razlika * Convert.ToDecimal(kolicina.Text);
                decimal pdvVrednost = PDV * Convert.ToDecimal(kolicina.Text);
                try
                {
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    if (razlika < 0)
                    {//if za STVI20 i STVI16
                        //PRVI UNOS
                        komanda.CommandText = @"UPDATE STV SET STVMAT=" + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", STVMAG="
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(uMaloprodaju.SelectedItem.ToString()) + ", STVULA=" + Convert.ToDecimal(kolicina.Text) + ", STVCEN="
                            + Convert.ToDecimal(mpCena.Text) + ", STVDUG=" + Convert.ToDecimal(mpVrednost.Text) + ", STVTAR="
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", STVSTO="
                            + Convert.ToDecimal(string.Format("{0:0.00}", Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text))) + ", STVI08=" 
                            + pdvVrednost + ", STVI09=" + vrednostVpRuc + ",STVI11="+ Convert.ToDecimal(vpCena.Text) + ", STVI12=" 
                            + Convert.ToDecimal(vpVrednost.Text) + ", STVI16=" + razlika + ", STVI17="+ Convert.ToDecimal(mpMarza.Text) + ", STVI18=" 
                            + Convert.ToDecimal(mpCena.Text) + ", STVI19=" + Convert.ToDecimal(mpVrednost.Text) + ", STVI21="
                            + PDV + ", STVIDT=NOW(), STVI20=0.00 WHERE STVID="+ idStavke+1 + " ";
                    }
                    else
                    {
                        komanda.CommandText = @"UPDATE STV SET STVMAT=" + Convert.ToInt32(stavkaDostavnice.IDartikla) + ", STVMAG="
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(uMaloprodaju.SelectedItem.ToString()) + ", STVULA=" + Convert.ToDecimal(kolicina.Text) + ", STVCEN="
                            + Convert.ToDecimal(mpCena.Text) + ", STVDUG=" + Convert.ToDecimal(mpVrednost.Text) + ", STVTAR="
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaDostavnice.IDartikla)) + ", STVSTO="
                            + Convert.ToDecimal(string.Format("{0:0.00}", Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text))) + ",STVI08=" 
                            + pdvVrednost + ", STVI09=" + vrednostVpRuc + ", STVI11="+ Convert.ToDecimal(vpCena.Text) + ", STVI12=" 
                            + Convert.ToDecimal(vpVrednost.Text) + ", STVI20=" + razlika + ", STVI17="+ Convert.ToDecimal(mpMarza.Text) + ", STVI18=" 
                            + Convert.ToDecimal(mpCena.Text) + ", STVI19=" + Convert.ToDecimal(mpVrednost.Text) + ", STVI21="
                            + PDV + ", STVIDT=NOW(), STVI16=0.00 WHERE STVID="+ idStavke+1 + " ";
                    }
                    komanda.ExecuteNonQuery();
                    MessageBox.Show("Stavka je uspešno izmenjena!");
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        }

        public void ObrisiStavkuPremaID(int idStavke) {
                try
                {
                    //konekcija sa bazom
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = "DELETE FROM STV WHERE STVID="+idStavke+";";
                    komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
        } //metoda koja brise stavku
        public void ObrisiStavkuPremaID2(int idStavke)
        {
            int brisanje = idStavke + 1;
                //ukoliko se klikne na yes
                try
                {
                    //konekcija sa bazom
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = "DELETE FROM STV WHERE STVID=" + brisanje + ";";
                    komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
        }  //metoda koja brise stavku drugi deo
        public void ObrisiStavkePremaZAGID(int idZAG) {
            try
            {
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "DELETE FROM STV WHERE STVZAG=" + idZAG + " ;";
                komanda.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                konekcija.Close();
            }
        } //metoda koja brise stavku svuda gde je idZAG jednak necemu

        public void PopuniVrednostiZaPunjenjeTextBoxOvaDostavnicaForma(DataGridView stavkeDostavnice, TextBox vpVrednost, TextBox vpRUC, TextBox ukalkulisaniRUC, 
            TextBox ukalkulisaniPDV, TextBox mpVrednost, TextBox mpNivelacija, int magacin) {
                if (stavkeDostavnice.RowCount > 0)
                {
                    try
                    {
                        decimal vpVred = 0.00m;
                        decimal vpruc = 0.00m;
                        decimal ukalRUC = 0.00m;
                        decimal ukalPDV = 0.00m;
                        decimal mpVred = 0.00m;
                        decimal mpNivel = 0.00m;

                        for (int i = 0; i < stavkeDostavnice.RowCount; i++)
                        {
                            konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                            konekcija.Open();
                            komanda.Connection = konekcija;
                            komanda.CommandType = CommandType.Text;
                            komanda.CommandText = "SELECT STVI14, STVI16, STVI20, STVI21, STVI12, STVNDU, STVIZL FROM STV WHERE STVID=" +
                                Convert.ToInt32(stavkeDostavnice.Rows[i].Cells[1].Value.ToString()) + "";
                            /*
                             komanda.CommandText = "SELECT SUM(STVI14), SUM(STVI09), SUM(STVI20), SUM(STVI08), SUM(STVI12), SUM(STVNDU) FROM STV WHERE "
                            + " STVMAG=1 AND STVID BETWEEN " + Convert.ToInt32(stavkeDostavnice.Rows[0].Cells[1].Value.ToString()) + " AND "
                            + Convert.ToInt32(stavkeDostavnice.Rows[stavkeDostavnice.RowCount - 1].Cells[1].Value.ToString()) + ";";
                             */
                            datareader = komanda.ExecuteReader();
                            while (datareader.Read())
                            {
                                vpVred += Convert.ToDecimal(datareader[0].ToString());
                                vpruc += Convert.ToDecimal(datareader[1].ToString());
                                ukalRUC += Convert.ToDecimal(datareader[2].ToString());
                                ukalPDV += Convert.ToDecimal(datareader[3].ToString());
                                mpVred += Convert.ToDecimal(datareader[4].ToString());
                                mpNivel += Convert.ToDecimal(datareader[5].ToString());
                            }
                            datareader.Close();
                            konekcija.Close();
                        }
                        /*komanda.CommandText = "SELECT SUM(STVI14), SUM(STVI16)*SUM(STVIZL), SUM(STVI20), SUM(STVI21)*SUM(STVIZL), SUM(STVI12), SUM(STVNDU) FROM STV WHERE "
                            + " STVMAG="+magacin+" AND STVID BETWEEN " + Convert.ToInt32(stavkeDostavnice.Rows[0].Cells[1].Value.ToString()) + " AND "
                            + Convert.ToInt32(stavkeDostavnice.Rows[stavkeDostavnice.RowCount - 1].Cells[1].Value.ToString()) + ";";*/
                            vpVrednost.Text = ""+vpVred;
                            vpRUC.Text = string.Format("{0:0.00}",vpruc);
                            ukalkulisaniRUC.Text = string.Format("{0:0.00}", ukalRUC);
                            ukalkulisaniPDV.Text = string.Format("{0:0.00}", ukalPDV);
                            mpVrednost.Text = ""+mpVred;
                            mpNivelacija.Text = ""+mpNivel;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                    }
                    finally
                    {
                        
                    }
                }
                else {
                    vpVrednost.Text = "0.00";
                    vpRUC.Text = "0.00";
                    ukalkulisaniRUC.Text = "0.00";
                    ukalkulisaniPDV.Text = "0.00";
                    mpVrednost.Text = "0.00";
                    mpNivelacija.Text = "0.00";
                }
        }
        public void PopuniVrednostiZaPunjenjeTextBoxaNalogProdajeForma(DataGridView stavkeNalogaProdaje, TextBox racunUkupno)
        {
            if (stavkeNalogaProdaje.RowCount > 0)
            {
                try
                {
                    //konekcija sa bazom
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = "SELECT SUM(STVPOT) FROM STV WHERE STVMAG=4 AND STVID BETWEEN " 
                        + Convert.ToInt32(stavkeNalogaProdaje.Rows[0].Cells[1].Value.ToString()) + " AND "
                        + Convert.ToInt32(stavkeNalogaProdaje.Rows[stavkeNalogaProdaje.RowCount - 1].Cells[1].Value.ToString()) + ";";
                    datareader = komanda.ExecuteReader();
                    while (datareader.Read())
                    {
                        racunUkupno.Text = datareader[0].ToString();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    datareader.Close();
                    konekcija.Close();
                }
            }
            else
            {
                racunUkupno.Text = "0.00";
            }
        }
        public void PopuniVrednostiZaPunjenjeTextBoxOvaIzlazniRacunForma(DataGridView stavkeIzlaznogRacuna, TextBox vrednost, TextBox iznosRabata, TextBox osnovicaPDV,
            TextBox iznosPDV, TextBox ukupnoZaUplatu)
        {
            if (stavkeIzlaznogRacuna.RowCount > 0)
            {
                try
                {
                    decimal vred = 0.00m;
                    decimal rabat = 0.00m;

                    for (int i = 0; i < stavkeIzlaznogRacuna.RowCount; i++)
                    {
                        konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                        konekcija.Open();
                        komanda.Connection = konekcija;
                        komanda.CommandType = CommandType.Text;
                        komanda.CommandText = "SELECT STVPOT, STVI22 FROM STV WHERE STVID=" +
                            Convert.ToInt32(stavkeIzlaznogRacuna.Rows[i].Cells[1].Value.ToString()) + "";
                        /*
                         komanda.CommandText = "SELECT SUM(STVI14), SUM(STVI09), SUM(STVI20), SUM(STVI08), SUM(STVI12), SUM(STVNDU) FROM STV WHERE "
                        + " STVMAG=1 AND STVID BETWEEN " + Convert.ToInt32(stavkeDostavnice.Rows[0].Cells[1].Value.ToString()) + " AND "
                        + Convert.ToInt32(stavkeDostavnice.Rows[stavkeDostavnice.RowCount - 1].Cells[1].Value.ToString()) + ";";
                         */
                        datareader = komanda.ExecuteReader();
                        while (datareader.Read())
                        {
                            vred += Convert.ToDecimal(datareader[0].ToString());
                            rabat += Convert.ToDecimal(datareader[1].ToString());
                        }
                        datareader.Close();
                        konekcija.Close();
                    }
                    /*komanda.CommandText = "SELECT SUM(STVI14), SUM(STVI16)*SUM(STVIZL), SUM(STVI20), SUM(STVI21)*SUM(STVIZL), SUM(STVI12), SUM(STVNDU) FROM STV WHERE "
                        + " STVMAG="+magacin+" AND STVID BETWEEN " + Convert.ToInt32(stavkeDostavnice.Rows[0].Cells[1].Value.ToString()) + " AND "
                        + Convert.ToInt32(stavkeDostavnice.Rows[stavkeDostavnice.RowCount - 1].Cells[1].Value.ToString()) + ";";*/
                    vrednost.Text = "" + vred;
                    iznosRabata.Text = "" + rabat;

                    decimal osnovicapdv = vred - rabat;
                    decimal iznospdv=osnovicapdv*20/100;
                    decimal ukupnozauplatu = osnovicapdv + iznospdv;

                    osnovicaPDV.Text = "" + osnovicapdv;
                    iznosPDV.Text = "" + iznospdv;
                    ukupnoZaUplatu.Text = "" + ukupnozauplatu;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {

                }
            }
            else
            {
                vrednost.Text = "";
                iznosRabata.Text = "";
                osnovicaPDV.Text = "";
                iznosPDV.Text = "";
                ukupnoZaUplatu.Text = "";
            }
        }


        public void PopuniDataGridViewDostavnicaStampanje(DataGridView dataGridViewDostavnicaStampanje, int pocetniStavke, int krajnjiStavke, TextBox preduzece, 
             TextBox dostavnicaInformacije, TextBox IzVPuMP, int magacin, int pred) {
                 tarifaObjekat = new Tarifa();
            try
            {
                dataGridViewDostavnicaStampanje.Rows.Clear();
                artikalObjekat = new Artikal();
                int redniBroj = 1;
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                komanda.Connection = konekcija;
                komanda.CommandText = "SELECT STVMAT,  STVIZL  , STVI13 , STVI14 , STVI17 , STVI16 , STVCEN , STVSTO , STVI21 , STVI12 , STVI11  FROM STV WHERE "
                    + "STVMAG="+magacin+" AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                dataTable = new DataTable();
                adapter = new MySqlDataAdapter();
                adapter.SelectCommand = komanda;
                adapter.Fill(dataTable);

                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                   dataGridViewDostavnicaStampanje.Rows.Add(redniBroj, artikalObjekat.VratiKTBArtiklaNaOsnovuID((int)dataTable.Rows[i][0]), 
                       artikalObjekat.VratiOznakuArtiklaNaOsnovuID((int)dataTable.Rows[i][0]),artikalObjekat.VratiJedinicuMereNaOsnovuID((int)dataTable.Rows[i][0]),
                        dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], dataTable.Rows[i][4], dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7]
                        , dataTable.Rows[i][8], dataTable.Rows[i][9], dataTable.Rows[i][10]);
                   redniBroj++;
                }
                dataTable.Clear();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVI14), SUM(STVPOT), SUM(STVI21), SUM(STVI12), SUM(STVI16), SUM(STVI20) FROM STV WHERE STVMAG="+magacin+" "
                    +" AND STVID BETWEEN "+pocetniStavke+" AND "+krajnjiStavke+"";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                dataGridViewDostavnicaStampanje.Rows.Add("", "", "UKUPNO:", "", "", "", datareader[0].ToString(), "", "",
                        datareader[1].ToString(), "", datareader[2].ToString(), datareader[3].ToString(), "");
                dataGridViewDostavnicaStampanje.Rows.Add();
                dataGridViewDostavnicaStampanje.Rows.Add("", "", "VP RUC:", "", datareader[4].ToString(), "", "", "", "",
                    "", "", "", "", "");
                dataGridViewDostavnicaStampanje.Rows.Add("", "", "MP RUC: ", "", datareader[5].ToString(), "", "", "", "", 
                    "Tarifa", "Stopa[%]", "Ukalkulisana osnovica", "Ukalkulisani PDV", "MP vrednost");
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVPOT), SUM(STVI21), SUM(STVI12) FROM STV WHERE STVMAG="+magacin+" "
                    + " AND STVSTO="+tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(1)+" AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewDostavnicaStampanje.Rows.Add("", "", "", "", "", "", "", "", "",
                        "Viša tarifa PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(1),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString());
                }
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVPOT), SUM(STVI21), SUM(STVI12) FROM STV WHERE STVMAG="+magacin+" "
                    + " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(2) + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewDostavnicaStampanje.Rows.Add("", "", "", "", "", "", "", "", "",
                        "Niža tarifa PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(2),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString());
                }
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVPOT), SUM(STVI21), SUM(STVI12) FROM STV WHERE STVMAG="+magacin+" "
                    + " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(4) + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewDostavnicaStampanje.Rows.Add("", "", "", "", "", "", "", "", "",
                        "Bez PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(4),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString());
                }
                datareader.Close();
                konekcija.Close();

                dataGridViewDostavnicaStampanje.Rows.Add();
                dataGridViewDostavnicaStampanje.Rows.Add("", "", "Obračunao", "", "", "", "", "", "", "", "", "Odgovorno", "lice", "");

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT PREDUZECEOZN, PREDUZECEADR, PREDUZECEPBR, PREDUZECEMES, PREDUZECETEL, PREDUZECEFAX, PREDUZECEMBR, PREDUZECEPIB "
                    + " FROM PREDUZECA WHERE PREDUZECEID=" + pred + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(datareader[0].ToString());
                sb.AppendLine(datareader[1].ToString());
                sb.AppendLine(datareader[2].ToString());
                sb.AppendLine(datareader[3].ToString());
                sb.AppendLine("Telefon: " + datareader[4].ToString());
                sb.AppendLine("Fax: " + datareader[5].ToString());
                sb.AppendLine("Matični broj: " + datareader[6].ToString());
                sb.AppendLine("PIB: " + datareader[7].ToString());
                preduzece.Text += sb.ToString();
                datareader.Close();
                konekcija.Close();

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT ZAGOZN, DATE_FORMAT(ZAGDAT,'%d.%m.%Y'), ZAGNAP FROM ZAG WHERE ZAGID=" + Convert.ToInt32(dostavnicaForma.IDzaglavlja) + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                StringBuilder sb3 = new StringBuilder();
                sb3.AppendLine("Dostavnica u maloprodaju");
                sb3.AppendLine("Broj: " + datareader[0].ToString() + " od " + datareader[1].ToString());
                sb3.AppendLine("Na osnovu: " + datareader[2].ToString());
                dostavnicaInformacije.Text += sb3.ToString();
                datareader.Close();
                konekcija.Close();

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT ZAGMA1, ZAGMA2 FROM ZAG WHERE ZAGID="+Convert.ToInt32(dostavnicaForma.IDzaglavlja)+" ";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                posjedObjekat = new Posjed();
                StringBuilder sb4 = new StringBuilder();
                sb4.AppendLine("Iz veleprodaje: ");
                sb4.AppendLine(posjedObjekat.VratiNazivPosjedaNaOsnovuID(Convert.ToInt32(datareader[0].ToString())));
                sb4.AppendLine(posjedObjekat.VratiMestoAdresuNaOsnovuID(Convert.ToInt32(datareader[0].ToString())));
                sb4.AppendLine("U maloprodaju: ");
                sb4.AppendLine(posjedObjekat.VratiNazivPosjedaNaOsnovuID(Convert.ToInt32(datareader[1].ToString())));
                sb4.AppendLine(posjedObjekat.VratiMestoAdresuNaOsnovuID(Convert.ToInt32(datareader[1].ToString())));
                IzVPuMP.Text += sb4.ToString();
                datareader.Close();
                konekcija.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {
                
            }
        }

        public void PopuniDataGridViewKalkulacijaStampanje(DataGridView dataGridViewKalkulacijaStampanje, int pocetniStavke, int krajnjiStavke, TextBox preduzece,
             TextBox kalkulacijaInformacije, TextBox partner, int magacin, int pred)
        {
            tarifaObjekat = new Tarifa();
            try
            {
                dataGridViewKalkulacijaStampanje.Rows.Clear();
                artikalObjekat = new Artikal();
                int redniBroj = 1;
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                komanda.Connection = konekcija;
                komanda.CommandText = "SELECT STVMAT,  STVULA  , STVI11 , STVI12 , STVI13 , STVI14 , STVI15, STVI17 , STVDUG , STVCEN , STVSTO  FROM STV WHERE "
                    + "STVMAG=" + magacin + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                dataTable = new DataTable();
                adapter = new MySqlDataAdapter();
                adapter.SelectCommand = komanda;
                adapter.Fill(dataTable);

                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    dataGridViewKalkulacijaStampanje.Rows.Add(redniBroj, artikalObjekat.VratiKTBArtiklaNaOsnovuID((int)dataTable.Rows[i][0]),
                        artikalObjekat.VratiOznakuArtiklaNaOsnovuID((int)dataTable.Rows[i][0]), artikalObjekat.VratiJedinicuMereNaOsnovuID((int)dataTable.Rows[i][0]),
                         dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], dataTable.Rows[i][4], dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7]
                         , dataTable.Rows[i][8], dataTable.Rows[i][9], dataTable.Rows[i][10]);
                    redniBroj++;
                }
                dataTable.Clear();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVI13), SUM(STVI14), SUM(STVI15), SUM(STVI17), SUM(STVDUG), TRUNCATE(SUM(STVI11*STVULA),2), TRUNCATE(SUM(STVI15*20/100), 2),  "
                    + " TRUNCATE(SUM(STVI15*120/100), 2) FROM STV WHERE STVMAG=" + magacin + " "
                    + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "UKUPNO:", "", "", "", "", datareader[0].ToString(), datareader[1].ToString(),
                        datareader[2].ToString(), datareader[3].ToString(), datareader[4].ToString(), "" , "");
                dataGridViewKalkulacijaStampanje.Rows.Add();
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "Fakturna vrednost:", "", datareader[5].ToString(), "", "", "", "",
                    "", "", "", "", "");
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "Rabat: ", "", datareader[0].ToString(), "", "", "", "",
                    "", "", "", "", "");
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "Zavisni troškovi: ", "", datareader[1].ToString(), "", "", "", "",
                    "", "", "", "", "");
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "Nabavna vrednost: ", "", datareader[2].ToString(), "", "", "", "",
                    "", "", "", "", "");
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "Iznos PDV: ", "", datareader[6].ToString(), "", "", "", "",
                    "", "", "", "", "");
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "Dobavljaču: ", "", datareader[7].ToString(), "", "", "",
                    "Tarifa", "Stopa[%]", "Osnovica", "PDV", "Ukupno", "");
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVI15), TRUNCATE(SUM(STVI15*20/100), 2), TRUNCATE(SUM(STVI15)+SUM(STVI15*20/100),2) FROM STV WHERE STVMAG=" 
                    + magacin + " "+ " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(1) + " AND STVID BETWEEN " + pocetniStavke + " AND " 
                    + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewKalkulacijaStampanje.Rows.Add("", "", "", "", "", "", "", "",
                        "Viša tarifa PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(1),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString(), "");
                }
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVI15), TRUNCATE(SUM(STVI15*20/100), 2) FROM STV WHERE STVMAG=" + magacin + " "
                    + " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(2) + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewKalkulacijaStampanje.Rows.Add("", "", "", "", "", "", "", "",
                        "Niža tarifa PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(2),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString(), "");
                }
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVI15), TRUNCATE(SUM(STVI15*20/100), 2) FROM STV WHERE STVMAG=" + magacin + " "
                    + " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(4) + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewKalkulacijaStampanje.Rows.Add("", "", "", "", "", "", "", "",
                        "Bez PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(4),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString(), "");
                }
                datareader.Close();
                konekcija.Close();

                dataGridViewKalkulacijaStampanje.Rows.Add();
                dataGridViewKalkulacijaStampanje.Rows.Add("", "", "Obračunao", "", "", "", "", "", "", "", "", "Odgovorno", "lice", "");

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT PREDUZECEOZN, PREDUZECEADR, PREDUZECEPBR, PREDUZECEMES, PREDUZECETEL, PREDUZECEFAX, PREDUZECEMBR, PREDUZECEPIB "
                    + " FROM PREDUZECA WHERE PREDUZECEID=" + pred + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(datareader[0].ToString());
                sb.AppendLine(datareader[1].ToString());
                sb.AppendLine(datareader[2].ToString());
                sb.AppendLine(datareader[3].ToString());
                sb.AppendLine("Telefon: " + datareader[4].ToString());
                sb.AppendLine("Fax: " + datareader[5].ToString());
                sb.AppendLine("Matični broj: " + datareader[6].ToString());
                sb.AppendLine("PIB: " + datareader[7].ToString());
                preduzece.Text += sb.ToString();
                datareader.Close();
                konekcija.Close();

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT ZAGOZN, DATE_FORMAT(ZAGDAT,'%d.%m.%Y'), ZAGNAP FROM ZAG WHERE ZAGID=" + Convert.ToInt32(kalkulacijaForma.IDzaglavlja) + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                StringBuilder sb3 = new StringBuilder();
                sb3.AppendLine("VLP. KALKULACIJA");
                sb3.AppendLine("Broj: " + datareader[0].ToString() + " od " + datareader[1].ToString());
                sb3.AppendLine("Na osnovu: " + datareader[2].ToString());
                kalkulacijaInformacije.Text += sb3.ToString();
                datareader.Close();
                konekcija.Close();

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT PARTNERNA1, PARTNERAD1, PARTNERAD2, PARTNERPBR, PARTNERMES, PARTNERPIB  FROM `partneri` WHERE PARTNERID="+
                    kalkulacijaForma.idPartnera+"";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                posjedObjekat = new Posjed();
                StringBuilder sb4 = new StringBuilder();
                sb4.AppendLine(datareader[0].ToString());
                sb4.AppendLine(datareader[1].ToString());
                sb4.AppendLine(datareader[2].ToString());
                sb4.AppendLine(datareader[3].ToString() + " " + datareader[4].ToString());
                sb4.AppendLine("PIB: " + datareader[5].ToString());
                partner.Text += sb4.ToString();
                datareader.Close();
                konekcija.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {

            }
        }

        public void PopuniKontroleUStavkaNalogaProdajeFormi(ComboBox prodajnaJedinica, TextBox kataloskiBrojArtikla, TextBox PDVstopaArtikla,
            TextBox VPCenaArtikla, TextBox kolicinaArtikla, TextBox artikalNaziv, TextBox ispodNazivaARtikla, TextBox MPCenaArtikla, TextBox ispoMPCeneArtikla,
            TextBox kolicina, TextBox prodajnaCena, TextBox ProdajnaVrednost, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije)
        {
            STV stvObjekat2 = new STV();
            if (stavkaNalogaProdaje.IDstavke.Length > 0)
            {
                if (stavkaNalogaProdaje.IDartikla.Length > 0)
                {
                    //ukoliko IDstavke postoji
                    posjedObjekat = new Posjed();
                    stvObjekat = new STV();
                    artikalObjekat = new Artikal();
                    tarifaObjekat = new Tarifa();
                    try
                    {
                        konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                        konekcija.Open();
                        komanda.Connection = konekcija;
                        komanda.CommandType = CommandType.Text;
                        komanda.CommandText = "SELECT STVMAG, STVMAT, STVID, STVIZL, STVCEN, STVPOT, STVNKO, STVNDU FROM STV WHERE STVID="
                            + Convert.ToInt32(stavkaNalogaProdaje.IDstavke) + "";
                        datareader = komanda.ExecuteReader();
                        datareader.Read();

                        kataloskiBrojArtikla.Text = artikalObjekat.VratiKTBArtiklaNaOsnovuID(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString()));
                        PDVstopaArtikla.Text = Razno.IzbrisiPojedineKaraktereIzStringa2(tarifaObjekat.VratiOznakuTarifeNaOsnovuID(
                        artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString()))));
                        VPCenaArtikla.Text = "" + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString())) + " / "
                            + artikalObjekat.VratiVPCenuArtiklaNaOsnovuIDArtiklaUEURIMA(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString()));
                        kolicinaArtikla.Text = "" + stvObjekat.VratiKolicinuArtikla(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString()), 1, statickePromenljive.godina);
                        artikalNaziv.Text = artikalObjekat.VratiOznakuArtiklaNaOsnovuID(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString()));
                        MPCenaArtikla.Text = "" + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString())) + " / "
                            + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtiklaUEURIMA(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString()));

                        if (Convert.ToInt32(stavkaNalogaProdaje.IDstavke) < stvObjekat.VratiPovecanID())
                        {
                            prodajnaJedinica.SelectedIndex = prodajnaJedinica.Items.IndexOf(
                                posjedObjekat.VratiOznakuPosjedaNaOsnovuID(Convert.ToInt32(datareader["STVMAG"].ToString())));

                            kolicina.Text = datareader["STVIZL"].ToString();
                            prodajnaCena.Text = datareader["STVCEN"].ToString();
                            ProdajnaVrednost.Text = datareader["STVPOT"].ToString();
                            kolicinaZaNivelaciju.Text = datareader["STVNKO"].ToString();
                            vrednostNivelacije.Text = datareader["STVNDU"].ToString();
                        }
                        else
                        {
                            prodajnaCena.Text = "" + artikalObjekat.VratiMPCenuArtiklaNaOsnovuIDArtikla(Convert.ToInt32(stavkaNalogaProdaje.IDartikla.ToString()));
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                    }
                    finally
                    {
                        datareader.Close();
                        konekcija.Close();
                    }
                }
            }
            else
            {

            }
        }

        public void UnosNoveStavkeKrozNalogProdaje(ComboBox prodajnaJedinica, TextBox kolicina, TextBox prodajnaCena, TextBox prodajnaVrednost, TextBox kolicinaZaNivelaciju, 
            TextBox vrednostNivelacije, TextBox StopaTarifa)
        {
            //kolicinaZaNivelaciju-STVIZL, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();
            stvObjekat = new STV();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0)
            {
                try
                {
                    decimal pcBezPDV = Convert.ToDecimal(prodajnaCena.Text) * 100 / (100 + Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)));
                    decimal PDV = Convert.ToDecimal(prodajnaCena.Text) - pcBezPDV;

                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    //SELECT STVMAG, STVMAT, STVID, STVIZL, STVCEN, STVPOT, STVNKO, STVNDU FROM STV WHERE STVID
                    //obrisano: IZU:0, 
                        komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVIZL, STVCEN, STVPOT, STVNKO, STVNDU, "
                            + " STVTAR, STVSTO, STVWIB, STVIZU, STVVAL, STVI21, STVIIM, STVIDT) "
                            + " VALUES (" + stvObjekat.VratiPovecanID() + ", " + Convert.ToInt32(nalogProdajeForma.idZaglavlja) + ", "
                            + Convert.ToInt32(stavkaNalogaProdaje.IDartikla) + ", "
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(prodajnaJedinica.SelectedItem.ToString()) + ", 0, "
                            + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(prodajnaCena.Text) + ", " + Convert.ToDecimal(prodajnaVrednost.Text) + ", "
                            + Convert.ToDecimal(kolicinaZaNivelaciju.Text) + ", " + Convert.ToDecimal(vrednostNivelacije.Text) + ","
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaNalogaProdaje.IDartikla)) + ", "
                            + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text))))
                            + ", 0, 0, 0," + PDV + ",'Agrovin', NOW())");
                    int response = komanda.ExecuteNonQuery();
                    MessageBox.Show("Uspešno uneta nova stavka!");
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        }

        public void IzmenaStavkeKrozNalogProdaje(ComboBox prodajnaJedinica, TextBox kolicina, TextBox prodajnaCena, TextBox prodajnaVrednost, TextBox kolicinaZaNivelaciju,
            TextBox vrednostNivelacije,TextBox StopaTarifa, TextBox kolicinaArtikla, int idStavke)
        {
            //kolicinaZaNivelaciju-STVIZL, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();
            stvObjekat = new STV();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0)
            {
                try
                {
                    decimal pcBezPDV = Convert.ToDecimal(prodajnaCena.Text) * 100 / (100 + Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)));
                    decimal PDV = Convert.ToDecimal(prodajnaCena.Text) - pcBezPDV;
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                        /*komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVIZL, STVCEN, STVPOT, STVNKO, STVNDU, "
                            + " STVTAR, STVSTO, STVWIB, STVIZU, STVVAL,STVIIM, STVIDT) "
                            + " VALUES (" + stvObjekat.VratiPovecanID() + ", " + Convert.ToInt32(nalogProdajeForma.idZaglavlja) + ", "
                            + Convert.ToInt32(stavkaNalogaProdaje.IDartikla) + ", "
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(prodajnaJedinica.SelectedItem.ToString()) + ", 0, "
                            + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(prodajnaCena.Text) + ", " + Convert.ToDecimal(prodajnaVrednost.Text) + ", "
                            + Convert.ToDecimal(kolicinaZaNivelaciju.Text) + ", " + Convert.ToDecimal(vrednostNivelacije.Text) + ","
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaNalogaProdaje.IDartikla)) + ", "
                            + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text)))) 
                            + ", 0, 0, 0,'Agrovin', NOW())");*/
                        komanda.CommandText = @"UPDATE STV SET STVMAT=" + Convert.ToInt32(stavkaNalogaProdaje.IDartikla) + ", STVMAG="
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(prodajnaJedinica.SelectedItem.ToString()) + ", STVIZL=" + Convert.ToDecimal(kolicina.Text) 
                            + ", STVCEN="+ Convert.ToDecimal(prodajnaCena.Text) + ", STVPOT=" + Convert.ToDecimal(prodajnaVrednost.Text) + ",STVNKO="+
                            Convert.ToDecimal(kolicinaZaNivelaciju.Text)+", STVNDU="+Convert.ToDecimal(vrednostNivelacije.Text)+", STVTAR="
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(stavkaNalogaProdaje.IDartikla)) + ",STVI21=" + PDV + ", STVSTO="
                            + Convert.ToDecimal(string.Format("{0:0.00}", Razno.IzbrisiPojedineKaraktereIzStringa3(StopaTarifa.Text))) 
                            + ", STVIDT=NOW() WHERE STVID=" + idStavke  + " ";
                            //DODATI NDU, NKO
                    komanda.ExecuteNonQuery();
                    MessageBox.Show("Stavka je uspešno izmenjena!");
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        }

        public void PopuniDataGridViewNalogProdajeStampanje(DataGridView dataGridViewNalogProdajeStampanje, int pocetniStavke, int krajnjiStavke, TextBox preduzece,
             TextBox nalogProdajeInformacije, TextBox maloprodaja)
        {
            tarifaObjekat = new Tarifa();
            try
            {
                dataGridViewNalogProdajeStampanje.Rows.Clear();
                artikalObjekat = new Artikal();
                int redniBroj = 1;
                //konekcija sa bazom
                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                komanda.Connection = konekcija;
                komanda.CommandText = "SELECT STVMAT,  STVIZL  , ROUND(STVCEN-STVI21/STVIZL,2) , STVPOT-STVI21 , STVCEN , STVPOT , STVSTO  FROM STV WHERE "
                    + "STVMAG=4 AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                dataTable = new DataTable();
                adapter = new MySqlDataAdapter();
                adapter.SelectCommand = komanda;
                adapter.Fill(dataTable);
                //RB, sifra, vrsta dobra, JM, kolicina, Cena bez PDV, osnovica(cena*kolicina), cena, vrednost, PDV[20%]
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    dataGridViewNalogProdajeStampanje.Rows.Add(redniBroj, artikalObjekat.VratiKTBArtiklaNaOsnovuID((int)dataTable.Rows[i][0]),
                        artikalObjekat.VratiOznakuArtiklaNaOsnovuID((int)dataTable.Rows[i][0]), artikalObjekat.VratiJedinicuMereNaOsnovuID((int)dataTable.Rows[i][0]),
                         dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], dataTable.Rows[i][4], dataTable.Rows[i][5], dataTable.Rows[i][6]);
                    redniBroj++;
                }
                dataTable.Clear();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVPOT-STVI21), SUM(STVI21), SUM(STVPOT) FROM STV WHERE STVMAG=4 "
                    + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                dataGridViewNalogProdajeStampanje.Rows.Add("", "", "UKUPNO:", "", "", "", "", "", datareader[2].ToString(), "");
                dataGridViewNalogProdajeStampanje.Rows.Add();
                dataGridViewNalogProdajeStampanje.Rows.Add("", "", "Vrednost bez PDV:", datareader[0].ToString(), "", "", "", "", "",
                    "");
                dataGridViewNalogProdajeStampanje.Rows.Add("", "", "Iznos PDV: ", datareader[1].ToString(), "", "", "", "", "",
                    "");
                dataGridViewNalogProdajeStampanje.Rows.Add("", "", "Vrednost sa PDV: ", datareader[2].ToString(), "", "Tarifa", "Stopa[%]", "Ukalkulisana osnovica", 
                    "Ukalkulisani PDV", "MP vrednost");
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVPOT-STVI21), SUM(STVI21), SUM(STVPOT) FROM STV WHERE STVMAG=4 "
                    + " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(1) + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewNalogProdajeStampanje.Rows.Add("", "", "", "", "",
                        "Viša tarifa PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(1),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString());
                }
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVPOT-STVI21), SUM(STVI21), SUM(STVPOT) FROM STV WHERE STVMAG=4 "
                    + " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(2) + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewNalogProdajeStampanje.Rows.Add("", "", "", "",
                        "Niža tarifa PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(2),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString());
                }
                datareader.Close();
                konekcija.Close();

                konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT SUM(STVPOT-STVI21), SUM(STVI21), SUM(STVPOT) FROM STV WHERE STVMAG=4 "
                    + " AND STVSTO=" + tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(4) + " AND STVID BETWEEN " + pocetniStavke + " AND " + krajnjiStavke + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                if (datareader.IsDBNull(0))
                {

                }
                else
                {
                    dataGridViewNalogProdajeStampanje.Rows.Add("", "", "", "", "",
                        "Bez PDV", tarifaObjekat.VratiStopuPDVNaOsnovuIDINajnovijegDatuma(4),
                        datareader[0].ToString(), datareader[1].ToString(), datareader[2].ToString());
                }
                datareader.Close();
                konekcija.Close();

                dataGridViewNalogProdajeStampanje.Rows.Add();
                dataGridViewNalogProdajeStampanje.Rows.Add("", "", "Obračunao", "", "", "", "Odgovorno", "lice", "", "");

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT PREDUZECEOZN, PREDUZECEADR, PREDUZECEPBR, PREDUZECEMES, PREDUZECETEL, PREDUZECEFAX, PREDUZECEMBR, PREDUZECEPIB FROM PREDUZECA WHERE PREDUZECEID=1";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                StringBuilder sb = new StringBuilder();
                sb.AppendLine(datareader[0].ToString());
                sb.AppendLine(datareader[1].ToString());
                sb.AppendLine(datareader[2].ToString());
                sb.AppendLine(datareader[3].ToString());
                sb.AppendLine("Telefon: " + datareader[4].ToString());
                sb.AppendLine("Fax: " + datareader[5].ToString());
                sb.AppendLine("Matični broj: " + datareader[6].ToString());
                sb.AppendLine("PIB: " + datareader[7].ToString());
                preduzece.Text += sb.ToString();
                datareader.Close();
                konekcija.Close();

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT ZAGOZN, DATE_FORMAT(ZAGDAT,'%d.%m.%Y') FROM ZAG WHERE ZAGID=" + Convert.ToInt32(nalogProdajeForma.idZaglavlja) + "";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                StringBuilder sb3 = new StringBuilder();
                sb3.AppendLine("Nalog prodaje");
                sb3.AppendLine("Broj: " + datareader[0].ToString() + " od " + datareader[1].ToString());
                nalogProdajeInformacije.Text += sb3.ToString();
                datareader.Close();
                konekcija.Close();

                konekcija.Open();
                komanda.Connection = konekcija;
                komanda.CommandType = CommandType.Text;
                komanda.CommandText = "SELECT ZAGMA1 FROM ZAG WHERE ZAGID=" + Convert.ToInt32(nalogProdajeForma.idZaglavlja) + " ";
                datareader = komanda.ExecuteReader();
                datareader.Read();
                posjedObjekat = new Posjed();
                StringBuilder sb4 = new StringBuilder();
                sb4.AppendLine(posjedObjekat.VratiNazivPosjedaNaOsnovuID(Convert.ToInt32(datareader[0].ToString())));
                sb4.AppendLine(posjedObjekat.VratiMestoAdresuNaOsnovuID(Convert.ToInt32(datareader[0].ToString())));
                maloprodaja.Text += sb4.ToString();
                datareader.Close();
                konekcija.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
            }
            finally
            {

            }
        }

        public void UnosNoveStavkeKrozKalkulaciju(ComboBox prodajnaJedinica, TextBox kolicina, TextBox fakturnaCena, TextBox rabat,
            TextBox iznosRabata, TextBox zavisniTroskovi, TextBox nabavnaVrednost, TextBox nabavnaCena, TextBox prodajnaCena, TextBox prodajnaVrednost,
            TextBox ruc, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije, TextBox stopaTarifa)
        {
            //kolicinaZaNivelaciju-STVNKO, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();
            stvObjekat = new STV();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0)
            {
                try
                {
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                        komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVULA, STVCEN, STVDUG, STVNKO, STVNDU, STVNPO, "
                            + " STVTAR, STVSTO, STVWIB, STVIZU, STVVAL, STVI11,  STVI12, STVI13, STVI14, STVI15, STVI16, STVI17, STVIIM, STVIDT) "
                            + " VALUES (" + stvObjekat.VratiPovecanID() + ", " + Convert.ToInt32(kalkulacijaForma.IDzaglavlja) + ", "
                            + Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla) + ", "
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(prodajnaJedinica.SelectedItem.ToString()) + ", 0, "
                            + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(prodajnaCena.Text) + ", " 
                            + Convert.ToDecimal(prodajnaVrednost.Text) + ", "
                            + Convert.ToDecimal(kolicinaZaNivelaciju.Text) + ", " + Convert.ToDecimal(vrednostNivelacije.Text) + ", 0.00, "
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla)) + ", "
                            + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(stopaTarifa.Text)))) + ", 0, 0, 0," 
                            + Convert.ToDecimal(fakturnaCena.Text) + ", " + Convert.ToDecimal(rabat.Text) + ", "+Convert.ToDecimal(iznosRabata.Text)+", " 
                            + Convert.ToDecimal(zavisniTroskovi.Text) + ", " + Convert.ToDecimal(nabavnaVrednost.Text) + ", "
                            + Convert.ToDecimal(nabavnaCena.Text) + ", " + Convert.ToDecimal(ruc.Text) + ", 'Agrovin', NOW())");
                        int response = komanda.ExecuteNonQuery();
                        MessageBox.Show("Uspešno uneta stavka!");
                    }
                catch (FormatException ex)
                {
                    MessageBox.Show("Greška u formatu! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        } //metoda koja omogucava dodavanje stavke kroz kalkulaciju

        public void UnosNoveStavkeKrozIzlazniRacun(ComboBox prodajnaJedinica, TextBox kolicina, TextBox cena, TextBox vrednost, TextBox rabatProcenat, TextBox iznosRabata, 
            TextBox vrednostBezRabata, TextBox iznosPDV, TextBox vrednostSaPDV, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije, TextBox stopaTarifa)
        {
            //kolicinaZaNivelaciju-STVNKO, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();
            stvObjekat = new STV();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0)
            {
                try
                {
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = string.Format("INSERT INTO STV (STVID, STVZAG, STVMAT, STVMAG, STVLOT, STVIZL, STVCEN, STVPOT, STVNKO, STVNDU, STVNPO, "
                        + " STVTAR, STVSTO, STVWIB, STVIZU, STVVAL, STVI21, STVI22, STVI23, STVI24, STVI25, STVIIM, STVIDT) "
                        + " VALUES (" + stvObjekat.VratiPovecanID() + ", " + IzlazniRacun.izlazniRacunForma.IDzaglavlja + ", "
                        + Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla) + ", "
                        + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(prodajnaJedinica.SelectedItem.ToString()) + ", 0, "
                        + Convert.ToDecimal(kolicina.Text) + ", " + Convert.ToDecimal(cena.Text) + ", "
                        + Convert.ToDecimal(vrednost.Text) + ", "
                        + Convert.ToDecimal(kolicinaZaNivelaciju.Text) + ",  0.00, " + Convert.ToDecimal(vrednostNivelacije.Text) + ","
                        + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla)) + ", "
                        + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(stopaTarifa.Text)))) + ", 0, 0, 0,"
                        + Convert.ToDecimal(rabatProcenat.Text) + ", " + Convert.ToDecimal(iznosRabata.Text) + ", " + Convert.ToDecimal(vrednostBezRabata.Text) + ", "
                        + Convert.ToDecimal(iznosPDV.Text) + ", " + Convert.ToDecimal(vrednostSaPDV.Text) + ", 'Agrovin', NOW())");
                    int response = komanda.ExecuteNonQuery();
                    MessageBox.Show("Uspešno uneta stavka!");
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Greška u formatu! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        } //metoda koja omogucava dodavanje stavke kroz izlazni racun

        public void IzmenaStavkeKrozKalkulaciju(ComboBox prodajnaJedinica, TextBox kolicina, TextBox fakturnaCena, TextBox rabat,
            TextBox iznosRabata, TextBox zavisniTroskovi, TextBox nabavnaVrednost, TextBox nabavnaCena, TextBox prodajnaCena, TextBox prodajnaVrednost,
            TextBox ruc, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije, TextBox stopaTarifa)
        {
            //kolicinaZaNivelaciju-STVNKO, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0)
            {
                try
                {
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = @"UPDATE STV SET STVMAT=" + Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla) + ", STVMAG="
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(prodajnaJedinica.SelectedItem.ToString()) + ", STVULA=" + Convert.ToDecimal(kolicina.Text) + ", STVCEN="
                            + Convert.ToDecimal(prodajnaCena.Text) + ", STVDUG=" + Convert.ToDecimal(prodajnaVrednost.Text) + ", STVNKO=" 
                            + Convert.ToDecimal(kolicinaZaNivelaciju.Text) + ", STVNDU=" + Convert.ToDecimal(vrednostNivelacije.Text) + ", STVTAR="
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDartikla)) + ", STVSTO="
                            + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(stopaTarifa.Text)))) + ",STVI11="
                            + Convert.ToDecimal(fakturnaCena.Text) + ", STVI12=" + Convert.ToDecimal(rabat.Text) + ",STVI13=" + Convert.ToDecimal(iznosRabata.Text) + ", STVI14="
                            + Convert.ToDecimal(zavisniTroskovi.Text) + ", STVI15=" + Convert.ToDecimal(nabavnaVrednost.Text) + ", STVI16="
                            + Convert.ToDecimal(nabavnaCena.Text) + ", STVI17=" + Convert.ToDecimal(ruc.Text) + ", STVIDT=NOW() WHERE STVID="
                            + Convert.ToInt32(Kalkulacija.stavkaKalkulacije.IDstavke) + " ";
                    int response = komanda.ExecuteNonQuery();
                    MessageBox.Show("Uspešno izmenjena stavka!");
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Greška u formatu! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        } //metoda koja omogucava izmenu stavke kroz kalkulaciju

        public void IzmenaStavkeKrozIzlazniRacun(ComboBox prodajnaJedinica, TextBox kolicina, TextBox cena, TextBox vrednost, TextBox rabatProcenat, TextBox iznosRabata,
            TextBox vrednostBezRabata, TextBox iznosPDV, TextBox vrednostSaPDV, TextBox kolicinaZaNivelaciju, TextBox vrednostNivelacije, TextBox stopaTarifa)
        {
            //kolicinaZaNivelaciju-STVNKO, vrednostNivelacije=STVNDU
            tarifaObjekat = new Tarifa();
            artikalObjekat = new Artikal();
            posjedObjekat = new Posjed();

            //konekcija sa bazom
            if (Convert.ToDecimal(kolicina.Text) > 0)
            {
                try
                {
                    konekcija = new MySqlConnection(statickePromenljive.konekcioniString);
                    konekcija.Open();
                    komanda.Connection = konekcija;
                    komanda.CommandType = CommandType.Text;
                    komanda.CommandText = @"UPDATE STV SET STVMAT=" + Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla) + ", STVMAG="
                            + posjedObjekat.VratiIDPosjedaNaOsnovuOznake(prodajnaJedinica.SelectedItem.ToString()) + ", STVIZL=" + Convert.ToDecimal(kolicina.Text) + ", STVCEN="
                            + Convert.ToDecimal(cena.Text) + ", STVPOT=" + Convert.ToDecimal(vrednost.Text) + ", STVNKO="
                            + Convert.ToDecimal(kolicinaZaNivelaciju.Text) + ", STVNPO=" + Convert.ToDecimal(vrednostNivelacije.Text) + ", STVTAR="
                            + artikalObjekat.VratiTarifuIDNaOsnovuID(Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDartikla)) + ", STVSTO="
                            + Convert.ToDecimal(string.Format("{0:0.00}", Convert.ToDecimal(Razno.IzbrisiPojedineKaraktereIzStringa3(stopaTarifa.Text)))) + ",STVI21="
                            + Convert.ToDecimal(rabatProcenat.Text) + ", STVI22=" + Convert.ToDecimal(iznosRabata.Text) + ",STVI23=" + Convert.ToDecimal(vrednostBezRabata.Text) + ", STVI24="
                            + Convert.ToDecimal(iznosPDV.Text) + ", STVI25=" + Convert.ToDecimal(vrednostSaPDV.Text) + ", STVIDT=NOW() WHERE STVID="
                            + Convert.ToInt32(IzlazniRacun.stavkaIzlaznogRacuna.IDstavke) + " ";
                    int response = komanda.ExecuteNonQuery();
                    MessageBox.Show("Uspešno izmenjena stavka!");
                }
                catch (FormatException ex)
                {
                    MessageBox.Show("Greška u formatu! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Neočekivana greška! \n" + ex.ToString(), "Greška!", MessageBoxButtons.OK);
                }
                finally
                {
                    konekcija.Close();
                }
            }
            else
            {
                MessageBox.Show("Morate uneti količinu");
            }
        } //metoda koja omogucava izmenu stavke kroz kalkulaciju
    }
}
